
\chapter{General Description}


The goal of this document is to provide a specification of the requirements that should be satisfied by the system. Here we  present a description of functional and non-functional requirements using several UML diagrams and: 
\begin{itemize}
\item An high level specification that gives an overview of the system;
\item A lower one, which contains a description of selected technologies, architectural choices and implementation details.
\end{itemize}
This document helps us to define a workflow for the project development which takes care of different stakeholder:
\begin{description}
\item[Technical Stakeholders] our supervisor Luciano Baresi
\item[Financiers Stakeholders] the ones who commissioned us the application design.
\end{description}

\section{Who are Testbusters?}

\begin{figure}[H]
\centering
\includegraphics[scale=0.2]{images/logotb}
\caption{Logo Testbusters}
\end{figure}

Testbusters is a group of students from different universities in Lombardia, who decided to start the teaching experience, helping others students to apply for closed courses of Medicine, Pharmacist and Physiotherapy. 
To prepare students, they build an education environment composed by seminars, tutoring and real test simulations; they use a lot  Social Networks (especially Facebook) to stimulate participation and take care about direct connections with their students.
Relying on the strength of their community they have decided to redesign their website and to offer a new IT System for managing courses and provide the possibility of making online test simulations.
Our jobs indeed, is to design, develop and maintain this tool; so we need to understand how to create a scalable system, easy to be maintained and up to date with best recents mobile and services technologies, that should make it interesting also as a product for their targets.
According with the recents design habits of web application design, we decided also to introduce some social networking features that can help to build a user friendly system.

\pagebreak

\section{Functionalities}

\subsection{System Functionalities}

\begin{description}
\item[Collect stats on the user] at the end of a test, stats are automatically collected.
\item[Send notifications] as an explanation of the system changing caused by users usage.
\end{description}

\subsection{Users functionalities}

\begin{description}
\item[Registration] a user can create a new account in the system by providing his email and generate a password. The account created is always free.

\item[Login] usual login procedure, with email and password.

\item[Make Test] a user can generate a new test. The system selects some question among those present in the database according with a layout and forward a test to the user.

\item[Bookmark Questions] a user can bookmark a question in his profile.

\item[Social Functionalities] a user can: manage his social information and his friends, send messages to them.

\item[Sharing Test and Question] after completing a test a user can publish his activity on Facebook, or he can share a single bookmarked question.

\item[Location Feature] a user can "geotag" himself to find near user. He can also activates location updates, in order to be notified if someone new geotag himself.

\end{description}